C++ Qt : Check the current State of QStateMachine
全部标签问题描述我们用qtcreator可能好好的,但是偶然间,修改某些ui界面文件,运行后这些ui文件就不产生效果了。我是因为直接复制了别的ui文件,然后改名的,导致了这样的现象。如果我们老老实实的用qtcreator的新建设计师界面类的方式,一般是不会出现这样问题的。我的解决方法直接把解决方法先说出来:删除Makefile文件即可。原因应该是我的ui_xx.h文件没有被gcc编译到。至于原因,看我后面的原理分析。本质分析做开发,要知根知底,才能节省下次遇到类似问题的消耗时间,下面我们来从原理上本质性的分析这个问题1.界面可视化设计原理先说一下qt界面可视化设计的原理,以我们创建的MainWindo
问题描述我们用qtcreator可能好好的,但是偶然间,修改某些ui界面文件,运行后这些ui文件就不产生效果了。我是因为直接复制了别的ui文件,然后改名的,导致了这样的现象。如果我们老老实实的用qtcreator的新建设计师界面类的方式,一般是不会出现这样问题的。我的解决方法直接把解决方法先说出来:删除Makefile文件即可。原因应该是我的ui_xx.h文件没有被gcc编译到。至于原因,看我后面的原理分析。本质分析做开发,要知根知底,才能节省下次遇到类似问题的消耗时间,下面我们来从原理上本质性的分析这个问题1.界面可视化设计原理先说一下qt界面可视化设计的原理,以我们创建的MainWindo
1.硬件:使用正点原子的IMX6ULLLinux开发板开发板底板原理图版本:V2.1核心板原理图版本:V1.6LCD:MSP2402(ICILI9341)2.查找可用引脚开发板上引出的引脚是在JP6上,只看JP6会发现没有可用的SPI引脚,但是查看底板原理图中与核心板相连的位置会发现其实JP6上的UART2的TX/RX/CTS/RTS四个引脚正好可以复用为ECSPI3的MISO/MOSI/CLK/SS0四个引脚,SPILCD还需要三个IO口作为Reset/DC/背光的控制引脚,如下图所示(但是我是偷懒了,将背光引脚直接接的V3.3)3.添加支持SPILCD的设备树节点(不废话,直接上干货)
前言本工程qt用的版本是5.8-32位,ffmpeg用的版本是较新的5.1版本。它支持TCP或UDP方式拉取实时流,实时流我采用的是监控摄像头的RTSP流。音频播放采用的是QAudioOutput,视频经ffmpeg解码并由YUV转RGB后是在QOpenGLWidget下进行渲染显示。本工程的代码有注释,可以通过本博客查看代码或者在播放最后的链接处下载工程demo。一、界面展示二、功能代码1.以下是主界面相关代码:mainwindow.hmainwindow.cppmainwindow.h#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include#includ
前言本工程qt用的版本是5.8-32位,ffmpeg用的版本是较新的5.1版本。它支持TCP或UDP方式拉取实时流,实时流我采用的是监控摄像头的RTSP流。音频播放采用的是QAudioOutput,视频经ffmpeg解码并由YUV转RGB后是在QOpenGLWidget下进行渲染显示。本工程的代码有注释,可以通过本博客查看代码或者在播放最后的链接处下载工程demo。一、界面展示二、功能代码1.以下是主界面相关代码:mainwindow.hmainwindow.cppmainwindow.h#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include#includ
基本流程简单聊天程序#include"server.h"#include#include"client.h"intmain(intargc,char*argv[]){QApplicationa(argc,argv);serverw;w.show();Clientc;c.setWindowTitle("client");c.show();returna.exec();}#include"server.h"#include"ui_server.h"server::server(QWidget*parent):QWidget(parent),ui(newUi::server){ui->setupUi
目录1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案AD7606数据采集和缓存XDMA简介XDMA中断模式QT上位机及其源码5、vivado工程1--BRAM缓存6、vivado工程2--DDR3缓存7、上板调试验证8、福利:工程代码的获取1、前言PCIE(PCIExpress)采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽,是目前各行业高速接口的优先选择方向,具有很高的实用价值和学习价值;本设计使用Xilinx
主界面不同区域介绍: 工具箱区域:提供GUI界面开发使用的各种基本控件,如单选框、文本框等。可以拖动到新创建的主程序界面。 主界面区域:用户放置各种从工具箱拖过来的各种控件。模板选项中最常用的就是Widget(通用窗口)和MainWindow(主窗口)。二者区别主要是Widget窗口不包含菜单栏、工具栏等。可以分别创建对比看看。 对象查看器区域:查看主窗口放置的对象列表。 属性编辑器区域:提供对窗口、控件、布局的属性编辑功能。比如修改控件的显示文本、对象名、大小等。 信号/槽编辑器区域:编辑控件的信号和槽函数,也可以添加自定义的信号和槽函数。基本控件介绍(1)显示控件。 L
主界面不同区域介绍: 工具箱区域:提供GUI界面开发使用的各种基本控件,如单选框、文本框等。可以拖动到新创建的主程序界面。 主界面区域:用户放置各种从工具箱拖过来的各种控件。模板选项中最常用的就是Widget(通用窗口)和MainWindow(主窗口)。二者区别主要是Widget窗口不包含菜单栏、工具栏等。可以分别创建对比看看。 对象查看器区域:查看主窗口放置的对象列表。 属性编辑器区域:提供对窗口、控件、布局的属性编辑功能。比如修改控件的显示文本、对象名、大小等。 信号/槽编辑器区域:编辑控件的信号和槽函数,也可以添加自定义的信号和槽函数。基本控件介绍(1)显示控件。 L
为什么在Qt中UI对象只能在主线程中操作在Qt中,UI对象只能在主线程中操作,因为Qt采用了事件循环机制,UI事件(如鼠标点击、键盘输入)都是在主线程中处理的。如果在子线程中直接操作UI对象,会导致线程安全问题。如果要在子线程中操作UI,应该怎么做如果需要在子线程中操作UI,可以采用信号槽机制或者Qt的线程间通信机制。Qt中的信号槽机制是一个事件驱动的机制,当信号发生时,执行槽函数。默认情况下,即connect函数的第五个参数为Qt::DirectConnection时,信号和槽函数是在同一个线程中执行的。即槽函数的执行是在emitsignal的那个线程中。这种情况下,用信号槽的本质就是调用一